package com.ruoyi.common.core.domain.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.util.Date;

/**
 * 项目对象 sys_project
 *
 * @author ruoyi
 * @date 2025-08-27
 */
@Data
public class SysProject extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 项目ID */
    private Long projectId;

    /** 项目所属类型 */
    @Excel(name = "项目所属类型")
    private String projectType;

    /** 项目所属业务中心 */
    @Excel(name = "项目所属业务中心")
    private String projectBelong;

    private String deptNameParam;

    /** 合同名称 */
    @Excel(name = "合同名称")
    private Long contractName;


    private String contractNick;

    /** 头部批次 */
    @Excel(name = "头部批次")
    private String batchName;

    /** 工程名称 */
    @Excel(name = "工程名称")
    private String projectName;

    /** 工程概况 */
    @Excel(name = "工程概况")
    private String projectDesc;

    /** 计划开工日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划开工日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date planStartDate;

    /** 计划竣工日期 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "计划竣工日期", width = 30, dateFormat = "yyyy-MM-dd")
    private Date planEndDate;

    /** 建设状态 */
    @Excel(name = "建设状态")
    private String constructStatus;

    /** 累计工程量 */
    @Excel(name = "累计工程量")
    private String accumulateNum;

    /** 总体进度（%） */
    @Excel(name = "总体进度", readConverterExp = "%=")
    private String totalProcessNum;

    /** 施工单位 */
    @Excel(name = "施工单位")
    private String constructUnit;

    /** 监理机构 */
    @Excel(name = "监理机构")
    private String superviseAgency;

    /** 项目负责人 */
    @Excel(name = "项目负责人")
    private String projectLeader;

    /** 联系方式 */
    @Excel(name = "联系方式")
    private String leaderContact;

    /** 安全总监 */
    @Excel(name = "安全总监")
    private String safetyDirector;

    /** 安全总监联系方式 */
    @Excel(name = "安全总监联系方式")
    private String safetyDirectorContact;

    /** 驻队监理 */
    @Excel(name = "驻队监理")
    private String residentSupervisor;

    /** 驻队监理联系方式 */
    @Excel(name = "驻队监理联系方式")
    private String residentSupervisorContact;

    /** 下周作业计划 */
    @Excel(name = "下周作业计划")
    private String nextWeekPlan;

    /** 风险等级 */
    @Excel(name = "风险等级")
    private String riskLevel;

    /** 实际作业时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实际作业时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date actualWorkTime;

    /** 完成情况 */
    @Excel(name = "完成情况")
    private String completionStatus;

    /** 备注 */
    @Excel(name = "备注")
    private String notes;

    private Long userId;

    private Long deptId;


}
